#ifndef ARITHMETIC_H_
#define ARITHMETIC_H_


// use c++ 11
#define GLM_FORCE_CXX11

// int
#define GLM_PRECISION_MEDIUMP_INT

// float
#define GLM_PRECISION_MEDIUMP_FLOAT

// show preprocess message
//#define GLM_MESSAGES

// inline config
#define GLM_FORCE_INLINE


#include <glm/glm.hpp>

#include <glm/ext.hpp>

#include "./render_system/gl_render_system_define.h"

// Explicit Instantiation
template struct GL_RENDER_SYSTEM_API glm::detail::tvec2<glm::mediump_float>;
template struct GL_RENDER_SYSTEM_API glm::detail::tvec3<glm::mediump_float>;
template struct GL_RENDER_SYSTEM_API glm::detail::tvec4<glm::mediump_float>;
template struct GL_RENDER_SYSTEM_API glm::detail::tmat2x2<glm::mediump_float>;
template struct GL_RENDER_SYSTEM_API glm::detail::tmat3x3<glm::mediump_float>;
template struct GL_RENDER_SYSTEM_API glm::detail::tmat4x4<glm::mediump_float>;

#endif